/* Includes ------------------------------------------------------------------*/
#include <MyApplication.h>

/* Private define-------------------------------------------------------------*/

/* Private variables----------------------------------------------------------*/
static void LED_Fun(uint8_t ,void (*CallBack)(uint8_t));
/* Public variables-----------------------------------------------------------*/
LED_t LED = 
{
    LED_Fun
};
/* Private function prototypes------------------------------------------------*/


/*
* @name   LED_Fun
* @brief  LED功能函数，中间虚拟函数
* @param  LED_Num：LED灯编号，CallBack：回调函数指针
* @retval None   
*/
static void LED_Fun(uint8_t LED_Num,void (*CallBack)(uint8_t))
{
    (*CallBack)(LED_Num);
}

/*
* @name   LED_ON
* @brief  打开LED
* @param  None
* @retval None   
*/
void LED_ON(uint8_t LED_Num)
{
    switch (LED_Num)
    {
        case LED1:HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); break;
        case LED2:HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET); break;
        case LED3:HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_PIN_SET); break;
        default:System.Error_Handler(); break;
    }
}

/*
* @name   LED_OFF
* @brief  关闭LED
* @param  None
* @retval None   
*/
void LED_OFF(uint8_t LED_Num)
{
    switch (LED_Num)
    {
        case LED1:HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET); break;
        case LED2:HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET); break;
        case LED3:HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_PIN_RESET); break;
        default:System.Error_Handler(); break;
    }
}

/*
* @name   LED_Flip
* @brief  翻转LED
* @param  None
* @retval None   
*/
void LED_Flip(uint8_t LED_Num)
{
    switch (LED_Num)
    {
        case LED1:HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); break;
        case LED2:HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin); break;
        case LED3:HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin); break;
        default:System.Error_Handler(); break;
    }
}
/********************************************************
  End Of File
********************************************************/
